A common step in deciding whether to grant a request for access to data or services in a network is to identify and authenticate the requesting user. Authentication includes the process of verifying the identity of a user. A known identification and authentication system includes associating a user identifier (“user id”) and a secret (“password”) for a user. The password can be a secret shared between the user and an authentication service. The user can submit his user id and password to the authentication service, which compares them with a user id and associated password that can be stored at the service. If they match, then the user is said to have been authenticated. If not, the user is said not to be authenticated.
A token is a device that can be used to authenticate a user. It can include one or more secrets, some of which can be shared with a validation center. For example, a token can store a secret key that can be used as the basis for calculating a One Time Password (OTP). A OTP can be a number (or alphanumeric string) that is generated once and then is not reused. The token can generate an OTP and send it along with a unique token serial number to an authentication server. The authentication server can calculate an OTP using its copy of the secret key for the token with the received serial number. If the OTPs match, then the user can be said to be authenticated. To further strengthen the link from the user to the token, the user can establish a secret Personal Identification Number (PIN) shared with the token that must be entered by the user to unlock the token. Alternatively, the PIN can be shared between the user, the token and the authentication server, and can be used with other factors to generate the OTP. A token typically implements tamper-resistant measures to protect the secrets from unauthorized disclosure.
The Public Key Infrastructure (PKI) includes a combination of software, encryption technologies, and services that can use digital certificates, public-key cryptography, and certificate authorities to provide security services, such as certificate (including key) management, identification and authentication, ensure data integrity and confidentiality, non-repudiation, etc. PKI is governed by standards to ensure that PKI-enabled devices and systems can interoperate properly in various contexts. See, e.g., ITU-T X.509; A. Arsenault and S. Turner, Internet X.509 Public Key Infrastructure: Roadmap, draft-ietf-pkix-roadmap-09.txt, July 2002; R. Housley, W. Ford, W. Polk and D. Solo, RFC 2459, Internet X.509 Public Key Infrastructure, Certificate and CRL Profile, January 1999; and D. Richard Kuhn, Vincent C. Hu, W. Timothy Polk and Shu-Jen Chang, Introduction to Public Key Technology and the Federal PKI Infrastructure, National Institute of Standards and Technology, Feb. 26, 2001. A typical PKI includes the issuance of digital certificates to individual users and devices; end-user and end-device enrollment software; integration with certificate directories; and tools for managing, renewing and revoking certificates.
A PKI system uses digital certificates to provide certain security services, such as distributing and verifying cryptographic keys. A digital certificate can include a user's name and/or token identifier, a serial number, one or more expiration dates, a copy of the certificate holder's public key (which can be used for encrypting and decrypting messages and creating digital signatures), and the digital signature of a Certification Authority (“CA”) so that a recipient of the certificate can verify that the certificate is valid. See, e.g., Adams, C., Farrell, S., Internet X.509 Public Key Infrastructure Certificate Management Protocols, <draft-ietf-pkix-rfc2510bis-06.txt>, December 2001. Digital certificates can be stored in registries so that users' public keys can be found and used by others. An example of a known PKI digital certificate format is shown in FIG. 1.
In certain known systems, a token is initialized at the manufacturer, e.g., by embedding in the token a secret symmetric key (to be shared with a validation authority) at the time and place at which the token is made. If it is learned that the token has compromised, it is disabled. It can be difficult or impossible to “reprovision” the token with a secret, e.g., recover the token, embed a new key, and to reissue the token to a user. Even if the token has not been compromised, the repeated use of the same key may render the OTPs generated by the token less secure than if its key was changed from time to time. Further, certain known token systems that are not PKI-enabled do not efficiently or effectively interoperate with a PKI system. Thus, certain known non-PKI token systems are unable to take advantage of the capabilities offered by PKI, such as key management, PKI-based authentication, etc.